package com.ruoyi.mall.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 返佣提现对象 mall_time_withdraw
 *
 * @author ruoyi
 * @date 2022-03-03
 */
public class MallTimeWithdraw extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 订单号（返佣RC开头，提现WD开头） */
    @Excel(name = "订单号", readConverterExp = "返=佣RC开头，提现WD开头")
    private String withdrawId;

    /** 相关资源ID */
    private String resId;

    public String getResId() {
        return resId;
    }

    public void setResId(String resId) {
        this.resId = resId;
    }

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名 */
    @Excel(name = "用户名")
    private String userName;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal money;

    /** 手续费  % */
    @Excel(name = "手续费  %")
    private BigDecimal withdrawCost;

    /** 实际金额 */
    @Excel(name = "实际金额")
    private BigDecimal actualMoney;

    /** 类型：0-返佣 1-提现 */
    @Excel(name = "类型：0-返佣 1-提现")
    private Integer type;

    /** 提现方式 1-微信 2-支付宝 3-银行卡 */
    @Excel(name = "提现方式 1-微信 2-支付宝 3-银行卡")
    private Integer withdrawType;

    /** 支付宝账号 */
    @Excel(name = "支付宝账号")
    private String aliPayAccount;

    /** 支付宝姓名 */
    @Excel(name = "支付宝姓名")
    private String aliPayName;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String cardBank;

    /** 开户名 */
    @Excel(name = "开户名")
    private String cardName;

    /** 开户账号 */
    @Excel(name = "开户账号")
    private String cardAccount;

    /** 手机号 */
    @Excel(name = "手机号")
    private String mobilePhone;

    /** 微信号 */
    @Excel(name = "微信号")
    private String wechatAccount;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;

    /** 审核不通过原因 */
    @Excel(name = "审核不通过原因")
    private String checkFailReason;

    /** 状态 1-待审核 2-审核通过 3-审核不通过 */
    @Excel(name = "状态 1-待审核 2-审核通过 3-审核不通过")
    private Integer status;

    /** 是否到账 1-未到账 2-已到账 */
    @Excel(name = "是否到账 1-未到账 2-已到账")
    private Integer isArrival;

    /** 到账时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到账时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date arrivalTime;

    /** 审核人员 */
    @Excel(name = "审核人员")
    private String checkLoginer;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /** 用户名 */
    private String name;
    /** 用户头像 */
    private String avatar;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setWithdrawId(String withdrawId)
    {
        this.withdrawId = withdrawId;
    }

    public String getWithdrawId()
    {
        return withdrawId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setMoney(BigDecimal money)
    {
        this.money = money;
    }

    public BigDecimal getMoney()
    {
        return money;
    }
    public void setWithdrawCost(BigDecimal withdrawCost)
    {
        this.withdrawCost = withdrawCost;
    }

    public BigDecimal getWithdrawCost()
    {
        return withdrawCost;
    }
    public void setActualMoney(BigDecimal actualMoney)
    {
        this.actualMoney = actualMoney;
    }

    public BigDecimal getActualMoney()
    {
        return actualMoney;
    }
    public void setType(Integer type)
    {
        this.type = type;
    }

    public Integer getType()
    {
        return type;
    }
    public void setWithdrawType(Integer withdrawType)
    {
        this.withdrawType = withdrawType;
    }

    public Integer getWithdrawType()
    {
        return withdrawType;
    }
    public void setAliPayAccount(String aliPayAccount)
    {
        this.aliPayAccount = aliPayAccount;
    }

    public String getAliPayAccount()
    {
        return aliPayAccount;
    }
    public void setAliPayName(String aliPayName)
    {
        this.aliPayName = aliPayName;
    }

    public String getAliPayName()
    {
        return aliPayName;
    }
    public void setCardBank(String cardBank)
    {
        this.cardBank = cardBank;
    }

    public String getCardBank()
    {
        return cardBank;
    }
    public void setCardName(String cardName)
    {
        this.cardName = cardName;
    }

    public String getCardName()
    {
        return cardName;
    }
    public void setCardAccount(String cardAccount)
    {
        this.cardAccount = cardAccount;
    }

    public String getCardAccount()
    {
        return cardAccount;
    }
    public void setMobilePhone(String mobilePhone)
    {
        this.mobilePhone = mobilePhone;
    }

    public String getMobilePhone()
    {
        return mobilePhone;
    }
    public void setWechatAccount(String wechatAccount)
    {
        this.wechatAccount = wechatAccount;
    }

    public String getWechatAccount()
    {
        return wechatAccount;
    }
    public void setCheckTime(Date checkTime)
    {
        this.checkTime = checkTime;
    }

    public Date getCheckTime()
    {
        return checkTime;
    }
    public void setCheckFailReason(String checkFailReason)
    {
        this.checkFailReason = checkFailReason;
    }

    public String getCheckFailReason()
    {
        return checkFailReason;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setIsArrival(Integer isArrival)
    {
        this.isArrival = isArrival;
    }

    public Integer getIsArrival()
    {
        return isArrival;
    }
    public void setArrivalTime(Date arrivalTime)
    {
        this.arrivalTime = arrivalTime;
    }

    public Date getArrivalTime()
    {
        return arrivalTime;
    }
    public void setCheckLoginer(String checkLoginer)
    {
        this.checkLoginer = checkLoginer;
    }

    public String getCheckLoginer()
    {
        return checkLoginer;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("withdrawId", getWithdrawId())
            .append("resId", getResId())
            .append("userId", getUserId())
            .append("userName", getUserName())
            .append("money", getMoney())
            .append("withdrawCost", getWithdrawCost())
            .append("actualMoney", getActualMoney())
            .append("type", getType())
            .append("withdrawType", getWithdrawType())
            .append("aliPayAccount", getAliPayAccount())
            .append("aliPayName", getAliPayName())
            .append("cardBank", getCardBank())
            .append("cardName", getCardName())
            .append("cardAccount", getCardAccount())
            .append("mobilePhone", getMobilePhone())
            .append("wechatAccount", getWechatAccount())
            .append("checkTime", getCheckTime())
            .append("checkFailReason", getCheckFailReason())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("isArrival", getIsArrival())
            .append("arrivalTime", getArrivalTime())
            .append("checkLoginer", getCheckLoginer())
            .toString();
    }
}
